<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // object中三个静态成员
        const obj = {name: '张三',age: 18, gender:'男'};

        // 1.Object.keys() 获取对象中的所有属性组成的数组
        let arr1 = Object.keys(obj);
        console.log(arr1);

        // 2.Object.values() 获取对象中的所有值组成的数组
        let arr2 = Object.values(obj)
        console.log(arr2);

        // 3.Object.assign() 赋值对象中的各种属性
        //  o1里面和o2重复会被覆盖,没有重复的值,会保留
        //  o2不会受到影响,还是原值.
        let o1 = {name: '李四',gender: '男'};
        let o2 = {name: '张三',age: 18};
        console.log(o1);
        Object.assign(o1,o2)
        console.log(o1);
        console.log(o2);

        //  创建对象有三种方法:
        // 1.字面量
        const a1 = {
            name:'张三',
            age: 18
        }
        console.log(a1);

        // 2.构造函数实例化
        const a2 = new Object()
        a2.name = '李四';
        a2.age = 28;
        console.log(a2);
        
        // 3.自定义构造函数创建实例对象
        // 特点>构造函数首字母大写,使用new 调用;
        function Student(){

        }
        const o3 = new Student();
        console.log(o3);
    </script>
</body>
</html>